Projucer 支援另一類型的專案——Animated。與一般的 GUI 專案不同處之一是,MainComponent 不再繼承 Component,改繼承 juce::AnimatedAppComponent
。
juce::AnimatedAppComponent 提供一些與 Animation 有關的函數,用以簡化 Animation 應用程式開發。setFramesPerSecond 設定 AnimatedAppComponent 中的相關函數間隔多久被呼叫。
底下是 Projucer 建立的 Animated 專案中的 MainComponent 程式碼片段:
MainComponent::MainComponent()
{
setSize (800, 600);
setFramesPerSecond (60); // This sets the frequency of the update calls.
}
void MainComponent::update()
{
}
void MainComponent::paint (juce::Graphics& g)
{
g.fillAll (getLookAndFeel().findColour (juce::ResizableWindow::backgroundColourId));
}
MainComponent 建構式先設定以 60 FPS 的頻率更新程式。update
成員函數會在時間到時被呼叫,paint
也是如此。於是,在兩個函數中處理需要被改變的物件,例如更新圖片或移動 Component 位置等,便可達到動態效果。
除此之外,JUCE 另提供了一些類別,也可達到動態效果。例如 ComponentAnimator,提供簡單的介面控制 Component 的外觀。